package com.example.md.mddemo.entity;

import com.example.md.mddemo.entity.value_obj.CustBankAcctInfo;
import com.example.md.mddemo.entity.value_obj.CustContactPerson;
import org.bson.types.ObjectId;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * Copyright © 2018年 ziniuxiaozhu. All rights reserved.
 *
 * @Author 临江仙 hzqiuxm@163.com
 * 客户信息实体对象
 * @Date 2018/8/9 18:25
 */
@Document("cust_info")
public class Customer {

    @Id
    private ObjectId id;

//    @Excel(name = "客户编号",needMerge=true)
    private String custCode;

//    @Excel(name = "客户名称")
    private String custName;

    private ObjectId custGradleId;

    private String status;

//    @Excel(name = "剩余日期",format = "yyyy-MM-dd", width = 18)
    private Date balanceDate;

    private String accountReceivable;

    private String legalRepresentative;

    private String identificationNumber;

    private long userId;

    private Date gmtCreate;

    private Date gmtModified;

//    @Excel(name = "地址信息列表")
    private List<String> addressList = new ArrayList<>();

//    @ExcelCollection(name = "银行账号信息列表")
    private List<CustBankAcctInfo> bankAcctInfoList = new ArrayList<>();

    private List<CustContactPerson> contactList;

    public ObjectId getId() {
        return id;
    }

    public void setId(ObjectId id) {
        this.id = id;
    }

    public String getCustCode() {
        return custCode;
    }

    public void setCustCode(String custCode) {
        this.custCode = custCode;
    }

    public String getCustName() {
        return custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    public ObjectId getCustGradleId() {
        return custGradleId;
    }

    public void setCustGradleId(ObjectId custGradleId) {
        this.custGradleId = custGradleId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getBalanceDate() {
        return balanceDate;
    }

    public void setBalanceDate(Date balanceDate) {
        this.balanceDate = balanceDate;
    }

    public String getAccountReceivable() {
        return accountReceivable;
    }

    public void setAccountReceivable(String accountReceivable) {
        this.accountReceivable = accountReceivable;
    }

    public String getLegalRepresentative() {
        return legalRepresentative;
    }

    public void setLegalRepresentative(String legalRepresentative) {
        this.legalRepresentative = legalRepresentative;
    }

    public String getIdentificationNumber() {
        return identificationNumber;
    }

    public void setIdentificationNumber(String identificationNumber) {
        this.identificationNumber = identificationNumber;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    public List<String> getAddressList() {
        return addressList;
    }

    public void setAddressList(List<String> addressList) {
        this.addressList = addressList;
    }

    public List<CustBankAcctInfo> getBankAcctInfoList() {
        return bankAcctInfoList;
    }

    public void setBankAcctInfoList(List<CustBankAcctInfo> bankAcctInfoList) {
        this.bankAcctInfoList = bankAcctInfoList;
    }

    public List<CustContactPerson> getContactList() {
        return contactList;
    }

    public void setContactList(List<CustContactPerson> contactList) {
        this.contactList = contactList;
    }
}
